
#1、输入数字n，输出n天前的日期（time或者datatime模块）

# import time
# import datetime
# # tm = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
# tm = time.strftime('%Y-%m-%d',time.localtime())
# def getdate(beforeOfDay):
#     today = datetime.datetime.now()
#     offset = datetime.timedelta(days=-beforeOfDay)
#     re_date = (today + offset).strftime('%Y-%m-%d')
#     return re_date
#
# while True:
#     n = input("请输入你要查寻几天前的日期(按q退出)：")
#     if n == "q":
#         break
#     if n.isdigit():
#         print("当前日期是",tm)
#         d = getdate(int(n))
#         print(n,"天前的日期是：",d)
#     else:
#         print("输入的不合法")

#2、输出指定文件夹下有哪些文件或文件夹（实现ls命令， os）

# import os
# path=(r'..')
# items = os.listdir(path)
# print(items)

#3、列表去重，并且从小到大排序

# a = [2,3,4,52,2,2,1,25,]
# a1 = list(set(a))
# a1.sort()
# print(a1)

#4、如何在一个函数内部修改全局变量

# a = 3
# def fu():
#     global a
#     a = 9
#     print(a)
# fu()
# print(a)

#5、如何跨模块共享全局变量
#   把全局变量都写在一个模块文件中，
#   使用的时候导入即可
#6、python的基本数据类型有哪些？
#   整数、浮点数、复数、字符串、布尔、NoneType、列表、元组、字典、集合
#7、python中生成随机整数（1-10），随机小数（1-10），随机小数（0-1）的方法

# import random
# print(random.randint(1,10))
# print(random.uniform(1,10))
# print(random.random())

#8、python中哪些是可变数据类型，哪些是不可变数据类型

# 可变数据类型：列表，字典，集合
# 不可变数据类型：数字，字符串，元组

#9、a+=1与a=a+1有什么区别

#对于不可变对象类型，都是重新开辟空间，这个标签指向新的内存空间
# 对于可变对象类型，a+=1 是直接在原内存地址   a=a+1是开辟新的内存操作

#10、什么是pep8？说出5点它的标准

# 1.缩进使用四个空格
# 2.运算符周围用空格分割
# 3.逗号后面使用空格
# 4.每一行代码控制在80个以内
# 5.注释最好独占一行
# 6.函数和类最好空两行

#11、给定一个字符串，找出字符串第一个重复的字符

# a = "sdhjhjghjfhf"
# lst = []
# for i in a:
#     # print(i)
#     if i in lst:
#         print(i,"是第一个重复的字段")
#         break
#     else:
#         lst.append(i)

#12、简述深拷贝与浅拷贝

#两种拷贝模式在容器类型里包含可变数据类型时会有不同的影响
#浅拷贝:可理解为在复制的时对象的指针，新数据和旧的公用一个内存地址，因为是一个内存地址，修改数据新旧都会变化
#深拷贝:开辟新内存地址，直接复制一个一摸一样的对象放入，修改新数据不会影响旧的

#13、简述python内存机制

#在python里，每个对象都有引用计数，就是指向这个对象的引用次数的总和。获取引用计数用 getrefcount()函数 当使用某个引用作为参数，
# 传递给getrefcount()时，参数实际上创建了一个临时的引用。因此，getrefcount()所得到的结果，会比期望的多1。
#引用计数操作不当会出现循环引用的情况，比如两个对象相互引用后，如果不存在其他对象对他们的引用,这两个对象
#所占用的内存也还是无法回收,从而导致内存泄漏。为了防止这种情况，用到了垃圾回收中的gc机制，分代回收和标记清除
#也就是以引用计数为主，分代回收和标记清除为辅的垃圾回收方式

#14、使用python实现冒泡排序，快速排序

#冒泡排序
# 1.比较相邻的元素。 如果第一个比第二个大，就交换他们两个。
# 2.对每一对相邻元素做同样的工作，从开始第一对到结尾的最后一对。 在这一点，最后的元素应该会是最大的数。
# 3.针对所有的元素重复以上的步骤，除了最后一个。
# 4.持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。

# a = [1, 5, 6, 3, 48, 12, 9, 23]
# #遍历列表的所有元素
# for i in range(0,len(a)-1):
#     # print("主",i)
#     for j in range(0,len(a)-1-i):
#         # print(j,"副")
#         if a[j] > a[j+1]:
#             a[j], a[j+1] = a[j+1], a[j]
#             # print("总",i,j)
# print(a)

#快速排序
# a = [1, 5, 6, 3, 48, 12, 9, 23]
# for i in range(0,len(a)-1):
#     print("主",i)
#     for j in range(i+1, len(a)):
#         print("副", j)
#         if a[i]>a[j]:
#             a[i], a[j] = a[j], a[i]
#             print("总",i,j)
# print(a)


#15、验证一个字符串是否属于回文（从左到右，从右到左都是一样）

a=input("请输入一串字符：")
#取从后向前（相反）的元素
if a == a[::-1]:
    print("是回文")
    # print(a[::-1])
else:
    print("不是一个回文")
    # print(a[::-1])